﻿#include <stdio.h>
//程序环境和预处理

//#define
int main()
{
	//1.定义标识符
	//语法:#define name 值
	
	//2.定义宏
	//语法 #define name(函数参数) stuff
	//宏会作为参数进入stuff中.
	//注:尽量每个参数都加括号,防止因为优先级问题导致错误
	
	//3.#define 替换规则
	//全部替换.

	//4.#和##
	//#name->调用宏的名
	//##:两侧两个元素变为一个元素
	return 0;
}
//预处理详解
int main4()
{
	//预定义符号
	//__FILE__      //进行编译的源文件
	//__LINE__     //文件当前的行号
	//__DATE__    //文件被编译的日期
	//__TIME__    //文件被编译的时间
	//__STDC__    //如果编译器遵循ANSI C，其值为1，否则未定义

	return 0;
}
//运行环境
int main3()
{
	//1.载入内存
	//2.程序执行开始,调用main函数
	//3.执行代码,调用堆栈
	//4.终止程序
	return 0;
}
//详解编译和链接(即翻译环境)
int main2()
{
	//编译:编译器中的不同文件通过编译器(c1.exe)全部转化为.obj目标文件
	//编译具体步骤
	//1.预处理->.i
	//1.1注释的替换(删除)->注释替换为空格
	//1.2头文件的包含
	//1.3#define符号的替换
	
	//2.编译->.s.把C语言编译成汇编代码
	//3.汇编->.o把汇编代码翻译成二进制的.o目标文件

	//链接:编译后的.obj目标文件与源文件中使用的函数存放的链接库通过链接器(link.exe)变为可执行文件.exe
	return 0;
}
//程序的翻译环境和执行环境
int main1()
{
	//翻译环境:将源文件翻译为可以执行机器指令的环境

	//执行环境:用于实际执行代码
	return 0;
}